﻿/**
 * 超链接插件
 * 请注意插件会继承 Base_Plugin 的属性，在core.js当中定义
 */
(function(E){

var Consts = E.consts,
	reBaike=/^http:\/\/(\w+\.){0,3}(?:hudong|baike)\.com/i,
	
	// 0 不过滤；1 过滤
	isFilterExternal = (typeof g_filterExternal === "function") ? g_filterExternal: function(){
		return 0;
	};


E.plugin("Link", {
	config: {
		//面板宽度
		width:320,
		position: 'center',
		overlay: true
	},
	
	init: function( self ){
		//fill="Selection"
		//指定此属性后，会自动将编辑器中选中的文字赋值到此文本框
		self.cache['html'] = '<table border="0" width="100%">'
		+'<tr><td width="60">文 字：</td>'
		+'<td height="25" align="left">'
		+'<input type="text" style="width:220px;" name="text" maxlength="200" fill="Selection"/>'
		+'</td></tr>'
		
		+'<tr><td>网 址：</td>'
		+'<td height="25" align="left">'
		+'<input type="text" value="http://" style="width:220px;" name="url" maxlength="250"/>'
		+'</td></tr>'
		
		+'<tr><td>打 开：</td><td align="left"><select name="target">'
		+'<option value="_blank">在新窗口</option>'
		+'<option value="_self">在本窗口</option></select>'
		+'</td></tr>'
		
		+'</table>';
	},
	
	/**
	 * 返回要插入到编辑器的html代码
	 */
	get: function( panel, self ){
		var v = self.getValues( ), html='';
		if( v.text && v.url ){
			html = '<a href="'+v.url+'" target="'+v.target+'">'+v.text+'</a>';
		}else if( !v.text ){
			self.error( '请输入超链接文字' );
		}else if( !v.url ){
			self.error( '请输入超链接网址' );
		}
		return html
	},
	
	check: function(panel, self){
		var v = self.getValues( );
		
		// 指明不过滤外链
		if( !isFilterExternal() ){
			return true;
		}
		
		// 对互动百科做特殊验证
		if( /^([\w]+\.){0,3}(hudong|baike)\.com$/i.test(location.hostname) ){
			if( !reBaike.test(v.url) ){
				self.error('提示：为避免外链广告，仅允许互动百科的链接');
				return false;
			}
		}else {
			var pos = v.url.indexOf(location.hostname);
			if( v.url.indexOf('http:') ==0 && (pos < 0 || pos>10) ){
				self.error('提示：为避免外链广告，仅允许添加本站的链接');
				return false;
			}
		}
		return true;
	}
});


})(jQEditor);